#ifndef _TCP_H_
#define _TCP_H_

#define OPEN_MAX 1024

typedef struct user_node
{
	char Account[21];
	char Nickname[21];
	char Motto[51];
	char Email[51];
	int Pic;
}User;

typedef struct client_node
{
	char name[20];
	char ip[20];
	int sockfd;
	int login;
	User user_data;
	struct client_node *next;
}Clnode;

typedef struct thread_arg
{
	unsigned long pktId;
	int sockfd;
}Arg;

int init(int port);			//建立tcpsocket
int server();				//建立epoll服务器
int recvice(int csockfd);	//读取socket数据
void broad_send(char *data, int sockfd, char* cmd);	//广播
void add_client(int csockfd, struct sockaddr_in cliaddr);	//增加客户端列表
void del_client(int csockfd);	//删除客户端列表
void list_client();				//显示客户端列表
Clnode *find_client(int sockfd);	//寻找客户端
void display_buf(char *buf);
void sock_send(char *sendbuf, int sockfd);	//socket发送
void init_user_node(Clnode *p);		//初始化用户信息

extern Clnode *client_head;

#endif